<script setup lang="ts">
import * as echarts from 'echarts'
import { ref, onMounted } from 'vue'
// 获取DOM节点
let charts = ref()
// 组件挂载完毕
onMounted(() => {
    // 一个容器可以展示多种类型的图形图表
    let mychart = echarts.init(charts.value)
    // 设置配置项
    mychart.setOption({
        // 标题组件
        title: {
            // 主标题
            text: '景区排行',
            // 标题的位置
            left: '50%',
            // 主标题文字样式
            textStyle: {
                color: 'yellow',
                fontSize: 20
            },
            // 子标题
            subtext: '各大景区排行',
            // 子标题的样式
            subtextStyle: {
                color: 'yellow',
                fontSize: 16
            }
        },
        // x|y轴组件
        xAxis: {
            type: 'category',  // 图形图表在x轴均匀分布展示
        },
        yAxis: {},
        grid: {
            left: 20,
            bottom: 20,
            right: 20
        },
        // 系列：决定显示图形图表是哪一种
        series: [
            {
                type: 'bar',
                data: [10, 20, 30, 40, 50, 60, 70],
                label: {
                    show: true,
                    // 文字的位置
                    position: 'insideTop',
                    // 文字颜色
                    color: 'yellow'
                },
                // 是否显示背景颜色
                showBackground: true,
                backgroundStyle: {
                    color: {
                        type: 'linear',
                        x: 0,
                        y: 0,
                        x2: 0,
                        y2: 1,
                        colorStops: [{
                            offset: 0, color: 'red'
                        }, {
                            offset: 1, color: 'blue'
                        }],
                        global: false
                    }
                },
                // 柱条的样式
                itemStyle: {
                    borderRadius: [20, 20, 0, 0],
                    // 柱条颜色
                    color: function (data: any) {
                        // 给每一个柱条添加背景颜色
                        let arr = ['red', 'orange', 'yellowgreen', 'green', 'purple', 'hotpink', 'skyblue']
                        return arr[data.dataIndex]
                    }
                }
            },
            {
                type: 'line',
                data: [10, 60, 30, 15, 50, 60, 90],
                smooth: true
            }
        ],
        tooltip: {
            backgroundColor: 'rgba(50, 50, 50, 0.7)'
        }
    })
})
</script>

<template>
    <div class="box6">
        <div class="title">
            <p>热门景区排行</p>
            <img src="../../images/dataScreen-title.png" alt="">
        </div>
        <!-- 图形图表的容器 -->
        <div class="charts" ref="charts"></div>
    </div>
</template>

<style lang="scss" scoped>
.box6 {
    width: 100%;
    height: 100%;
    background: url(../../images/dataScreen-main-cb.png) no-repeat;
    background-size: 100% 100%;
    margin: 20px 0px;

    .title {

        p {
            color: white;
            font-size: 16px;
        }

        img {
            margin-top: 10px;
        }
    }

    .charts {
        height: calc(100% - 30px);
        // background: red;
    }
}
</style>